import { verfiyPhone } from '../../utils/rules'
Page({
  data: {
    countDownVisible: false,
    mobile: '', // 手机号
    code: '', // 验证码
    sms: 0
  },


  // 获取验证码
  async toggleCountDown() {
    // 1. 校验手机号是否合法
    const ret = verfiyPhone(this.data.mobile)
    if (!ret) return
    // 2. 开启倒计时
    this.setData({
      countDownVisible: true
    })
    // 3. 发请求获取sms(short message service)验证码
    const { code } = await wx.http({
      url: '/code',
      data: {
        mobile: this.data.mobile
      }
    })
    this.data.sms = code
    // 4. 成功提示
    wx.showToast({
      title: '验证码发送成功',
    })
  },
  // 点击登录逻辑
  async submit() {
    const {
      mobile,
      code
    } = this.data
    // 1. 校验
    const ret = verfiyPhone(mobile)
    if (!ret) return

    if (!/^\d{6}$/.test(code)) {
      wx.toast('验证码必须是6位数字')
      return
    }

    if (this.data.code !== this.data.sms) {
      wx.toast('验证码输入错误')
      return
    }
    // 2. 调接口
    const {
      token,
      refreshToken
    } = await wx.http({
      url: '/login',
      method: 'POST',
      data: {
        mobile,
        code
      }
    })
    // 3. 存token
    const app = getApp()
    app.token = token
    app.refreshToken = refreshToken
    wx.setStorageSync('token', token)
    wx.setStorageSync('refreshToken', refreshToken)
    // 4. 提示
    wx.showToast({
      title: '登陆成功',
    })
    // 5. 跳转页面（从哪来回哪去 redirectUrl || 个人中心）
    const tabList = ['/pages/index/index', '/pages/my/index']
    if (tabList.includes(this.options.redirectUrl)) {
      wx.switchTab({
        url: this.options.redirectUrl,
      })
    } else {
      wx.redirectTo({
        url: this.options.redirectUrl,
      })
    }
  },
  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
})